package TestMysqlFunctions;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Main2 {

	public static void main(String[] args) {
		try {
			
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			
			String url="jdbc:mysql://localhost:3306/video";
			String user="root";
			String password="toor";
			
			Connection conn = DriverManager.getConnection(url,user,password);
			String sql="{?=call getFacturacion(?,?)}"; // sql que crida una funcio, reb 1 valor, se li passen 2 valors			
			CallableStatement cstm = conn.prepareCall(sql);
			//establim el parametre a enviar (IN) al procediment emmagazemat
			String cliID ="01";
			cstm.setString(1, cliID);
			//establim el parametre de retorn (OUT)
			cstm.registerOutParameter(2, java.sql.Types.FLOAT);
			
			cstm.execute();

			// Recuperar el total facturado del cliente
			  float cliTotalFac = cstm.getFloat(2);
			  System.out.println("El cliente con el id:" + 
			               cliID + " ha comprado por valor " + cliTotalFac);
			  cstm.close();
			  conn.close();
			  
		
		} catch (InstantiationException | IllegalAccessException
				| ClassNotFoundException | SQLException e) {
			
			e.printStackTrace();
		} 
		

	}

}
